home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / CONTRSRC.ZIP / SRC / TYPEONE / KEYBOARD.INC < prev    next >
Encoding:
Text File  |  1994-11-04  |  2.6 KB  |  99 lines

  1. EXTRN _ExitDemo : WORD
  2. EXTRN _CPUtime  : WORD
  3. EXTRN _SpaceBar : WORD
  4. EXTRN _WaitVBL: FAR
  5.  
  6.  
  7. ;---- MACROs ----
  8.  
  9. ;=========================================================
  10.  
  11. VSYNC MACRO          ; Om de VBL te wachten...
  12.       call _WaitVBL
  13.       ENDM
  14.  
  15. STARTUP MACRO        ; MicroSoft Syntax.....
  16.         mov ax,DGROUP
  17.         mov ds,ax
  18.         ENDM
  19.  
  20. ;=========================================================
  21.  
  22. LOOP_UNTIL_KEY MACRO label         ; attend <> touches et boucle sur Main
  23.        LOCAL   lbl1,lbl2,GoOut,GoOut2
  24.  
  25.        in      al,60h              ; EXIT ?
  26.        cmp     al,78               ; '+'
  27.        jne     lbl1
  28.        mov     _CPUtime,1          ; set CPUtime Flag to ON ....
  29.        jmp     label
  30. lbl1:  cmp     al,74               ; '-'
  31.        jne     lbl2
  32.        mov     _CPUtime,0          ; set CPUtime Flag to OFF ....
  33.        jmp     label
  34. lbl2:  cmp     al,39h              ; Space Bar ...
  35.        je      GoOut
  36.        cmp     al,1                ; Escapff...
  37.        jne     label
  38.        mov     _ExitDemo,1         ; exit the whole demo !!!!
  39.        jmp     GoOut2
  40. GoOut: mov     _SpaceBar,1         ; set space bar
  41. GoOut2:       
  42.  
  43.        ENDM
  44.  
  45. ;============================================================
  46.  
  47. FLUSH_KEYBUF MACRO
  48.         MPUSH   ax,es
  49.  
  50.         mov     ax,40h                ; Flush keyboard buffer !!! ;-)
  51.         mov     es,ax
  52.         mov     ax,es:[001ah]
  53.         mov     es:[001ch],ax  
  54.  
  55.         MPOP    ax,es
  56.         ENDM
  57.  
  58. ;============================================================
  59.  
  60. COLOR MACRO lum:REQ                 ; to see the CPU time used...
  61.        MPUSH ax,dx
  62.        mov   dx,3c8h
  63.        xor   al,al
  64.        out   dx,al
  65.        inc   dl
  66.        mov   al,lum
  67.        out   dx,al
  68.        out   dx,al
  69.        out   dx,al
  70.        MPOP  ax,dx
  71.       ENDM
  72.  
  73. SHOWTIME MACRO lum:REQ               ; set CPU time 
  74.       LOCAL lbl1
  75.  
  76.       test   _CPUtime,1
  77.       jz     lbl1
  78.       COLOR  lum
  79. lbl1:
  80.       ENDM
  81.  
  82. ;=============================================================
  83.  
  84. MPUSH   MACRO reg1:REQ,reg2:VARARG   ; Vive Y.Roggeman/Greg & ses Macros
  85.         push reg1                    ; recursives !!!!!!! yahouuuuu !!!
  86.         IFNB <reg2>
  87.         MPUSH reg2
  88.         ENDIF
  89.         ENDM
  90.  
  91. MPOP    MACRO reg1:REQ,reg2:VARARG   ; bis bis !!!
  92.         IFNB <reg2>                  ; type brol = record....
  93.         MPOP reg2                    ; donc ça fait 20 bytes !!!
  94.         ENDIF                        ; donc 1 word ....
  95.         pop reg1                     ; brol je dis struct !!!
  96.         ENDM
  97.  
  98. ;=============================================================
  99.